import java.util.ArrayList;
import java.util.List;

class Solution02 {
    // 全局变量
    List<List<Integer>> ret;
    // 路径
    List<Integer> path;
    int n, k;

    public List<List<Integer>> combine(int _n, int _k) {
        n = _n;
        k = _k;
        ret = new ArrayList<>();
        path = new ArrayList<>();
        dfs(1);
        return ret;
    }

    public void dfs(int pos) {
        // 结束条件
        if (path.size() == k) {
            // 进行添加
            ret.add(new ArrayList<>(path));
            return;
        }
        for (int i = pos; i <= n; i++) {
            path.add(i);
            dfs(i + 1);
            // 回溯 -- 》 恢复现场
            path.remove(path.size() - 1);
        }
    }
}